Generally, a search engine is a program that is designed to search for information from a variety of sources of data, such as the World Wide Web and File Transfer Protocol (FTP) servers. Many of these conventional search engines are designed to conduct searches based on matching of keywords. For example, a conventional search engine searches documents for keywords, which are specified by a user, and returns a list of documents where the keywords are found. However, conventional search engines often do not take into account the context to which the keywords are specified. For example, a search engine processing a keyword “table” cannot differentiate a furniture “table” from a database “table.” As a result, many of these conventional search engines are notoriously inaccurate at searching for keywords that have different meanings in different contexts.